export default class StoreModeBase {
  public dispatch: Function;
  /** 用于区分不同的数据 Mode */
  protected modeName: string;

  constructor(modeName: string) {
    this.modeName = modeName;
  }

  setState(data) {
    this.dispatch({
      mode: this.modeName,
      // 如果 data 中有 type，则使用之，以便依然可以使用原先的 action.type 逻辑，支持跨 reducer 的 action
      type: data.type || `${this.modeName}-action-${Date.now()}`,
      data,
    });
  }
}
